/*
 * Copyright 2007 Cyril Joui (FR)
 * Original code from Codehaus Foundation (ASF)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package kr.javanese.devtools.m2wtp.common;

import java.util.HashSet;
import java.util.Set;

import org.eclipse.jdt.core.IClasspathEntry;

/**
 * Model object which contains dependencies for a pom.xml file.
 * @author Cyril Joui (FR)
 */
public class MavenClassPathList {

	/**
	 * Runtime dependencies.
	 */
	private Set<IClasspathEntry> runtimeDependencies;

	/**
	 * Provided dependencies.
	 */
	private Set<IClasspathEntry> providedDependencies;

	/**
	 * Test dependencies.
	 */
	private Set<IClasspathEntry> testDependencies;

	/**
	 * Compile dependencies.
	 */
	private Set<IClasspathEntry> compileDependencies;

	/**
	 * Default constructor.
	 * It creates empty sets for each dependencies set.
	 */
	public MavenClassPathList() {
		runtimeDependencies = new HashSet<IClasspathEntry>();
		providedDependencies = new HashSet<IClasspathEntry>();
		testDependencies = new HashSet<IClasspathEntry>();
		compileDependencies = new HashSet<IClasspathEntry>();
	}

	/**
	 * @return the compileDependencies
	 */
	public Set<IClasspathEntry> getCompileDependencies() {
		return compileDependencies;
	}

	/**
	 * @param compileDependencies the compileDependencies to set
	 */
	public void setCompileDependencies(Set<IClasspathEntry> compileDependencies) {
		this.compileDependencies = compileDependencies;
	}

	/**
	 * @return the providedDependencies
	 */
	public Set<IClasspathEntry> getProvidedDependencies() {
		return providedDependencies;
	}

	/**
	 * @param providedDependencies the providedDependencies to set
	 */
	public void setProvidedDependencies(Set<IClasspathEntry> providedDependencies) {
		this.providedDependencies = providedDependencies;
	}

	/**
	 * @return the runtimeDependencies
	 */
	public Set<IClasspathEntry> getRuntimeDependencies() {
		return runtimeDependencies;
	}

	/**
	 * @param runtimeDependencies the runtimeDependencies to set
	 */
	public void setRuntimeDependencies(Set<IClasspathEntry> runtimeDependencies) {
		this.runtimeDependencies = runtimeDependencies;
	}

	/**
	 * @return the testDependencies
	 */
	public Set<IClasspathEntry> getTestDependencies() {
		return testDependencies;
	}

	/**
	 * @param testDependencies the testDependencies to set
	 */
	public void setTestDependencies(Set<IClasspathEntry> testDependencies) {
		this.testDependencies = testDependencies;
	}
}
